It is known to provide a data processing apparatus with a temporary data store which is configured to store data items retrieved from a memory. This caching of the data items prevents the data items from being repeatedly retrieved from the memory (with the associated latency of that retrieval) each time they are needed to be accessed.
The temporary data store (cache) may be configured as a circular buffer in which newly retrieved data items are stored in storage locations selected in a predetermined circular sequence.
In addition it is known to provide an index (tag memory) which stores index items corresponding to the data items stored in the temporary data store. However, as data is written over and over again into a circular buffer the risk arises the tag memory references (index items) point to data items that are no longer present in the circular buffer.
Further it is desirable if the index (tag memory) only consumes a limited amount storage space (i.e. corresponds to a limited area when the data processing apparatus is implemented on silicon) and thus the storage of a unique identifier in the index for each data item stored in temporary data store, given typical sizes the temporary data store and the number of temporary data items to be stored, is undesirable.
Accordingly, it would be desirable to provide a technique which addresses the problem of an index item pointing to a data item that is no longer present in the temporary data store, without the above-mentioned disadvantage of a large associated storage of unique identifiers being required.